Introduction to Content Courier
-------------------------------------------------- 
There are  **two** applications at the core of any Content Management System. The first, and most obvious, is the administrative application, where you import and organize your words, images, and multimedia.  The second, less obvious, is the application that actually serves your web page to the world.   Modern CMS systems shine when it comes to the first application. They provide a flexible, efficient system for managing content.  The content serving application is another story. 

Almost all systems enforce a philosophy on <strong>what</strong> a web site or web page is. What the markup should look like, what sections a page has, how navigation should flow, etc. Operating outside this philosophy is a recipe for pain; to create a custom experience web developers are forced to jump through hoops and/or abuse a system's template/theme/plug-in engine. More often we just grudgingly accept whatever vision our system has forced on us and grumble about deadlines.

ContentCourier is a modest attempt to provide a **flexible** programmatic framework for delivering web sites.  A Content <strong>Delivery</strong> System rather than an entire Content Management System.

Primary design goals included

1. Use modern, object oriented PHP
2. Don't require the end-user to completely understand OOP concepts
3. Allow pages to maintain design continuity over the life of a site
4. Require mod_rewrite to discourage query-string based web sites, but don't outlaw query strings
5. Build a framework for delivering web sites, not web applications
6. Page URIs should be their own distinct entities, not tied to the host file system
7. Provide a method for content to be pulled from multiple systems within a single site
8. Provide a mechanism to perform transformations on content prior to delivery
9. Allow end-user to easily implement their own caching mechanism
10. Stay neutral in the HTML/XHTML/HTML5 wars

The source files included in this project are two things.  The first is the base ContentCourier system, which will allow you to build and deploy your own web site.  The second is a simple deployment that uses the host file system as a content store.  Just drop the source into a public apache folder (with both mod_rewrite and AllowOverride/.htaccess) and browse the site for full documentation.

Goals for a 1.0 include

1. Fixing any bugs and/or major functionality holes found after the initial .9 release
2. Providing a generic deployment for an Atom content store
3. A possible re-factor to allow easier assignment of custom options
4. Test cases to codify expected behavior (no TDD, shame on me)

Questions, comments, suggestions, and critiques are welcome.  Hate mail only makes me glad I'm not as miserable as you.
